package com.authsphere.plugin.api;

/**
 * @program: AuthSphere
 * @description:
 * @author: YuKai Fan
 * @create: 2025/3/26 10:01
 **/
public interface AuthSpherePlugin<T extends AuthSpherePluginChain> {

    /**
     * Process the Before Authentication  and (optionally) delegate to the next
     * @param exchange WebExchange
     * @param chain AuthSpherePluginChain
     */
    void execute(WebExchange exchange, T chain);

    /**
     * plugin order
     * @return order
     */
    int getOrder();
}
